habiticafandomcom-20200222-history
Contributing to Habitica
HabitRPG is an open-source project. Everyday people with everyday lives devote their time and energy to creating and maintaining everything you see here on this wiki and at HabitRPG. Whether you want to earn the Contributor Rewards with programming or artwork, or you just like the idea of open source, we welcome you to contribute to the project. Please jump in where you feel comfortable contributing. Be bold! Also, join us in IRC: #habitrpg freenode.net Helping with the app Designers Habitica tells legend of the Hero (Zakkain ), who completely rebranded our original 100%-Bootstrap look-and-feel, and gave us a beautiful aesthetic to call our own. Champion as he is, he's now questing in far off realms. If you see any design issues that could use improvement, please do jump in. It's a void that needs filling (we don't have any designers). Most importantly we could really use CSS optimizations help on mobile. The best bet is to jump into the web, mobile, or shared repos as you see fit. Ping us with questions (the main characters that hang around these days are @paglias, @lefnire, @Shaners, and @meaganoff) or just change something that irks you and submit a pull request. Read below for some of the repository details. Pixel Artists Jump into any of threads. It's a whole vibrant community of artists such as yourself, waiting for you to join the fray! Writers Things we need help with: * Write guest posts for other blogs, help get the word out. Heck, even Facebook & Twitter updates. This is Habit's current bread-and-butter. I'll periodically see a surge in traffic, and GA-source it to a fan's blog post - y'all don't know how grateful this makes me :) * Get involved with the Tutorials & Documentation. Lend your word skills to this wikia, see below. Also check out the Tutorials & Documentation card on our Trello board. Coders (Web & Mobile) You are desperately needed! Let's first discuss our technologies so you can decide which repository you want to get involved with. https://dl.dropboxusercontent.com/u/3869142/HabitRPG%20Architecture.png There are three repositories: *website *mobile *habitrpg-shared Shared library of character sprites, css, algorithms, helper functions, etc - both mobile & web (and both server & client on web) use this library. If there are any logic errors (custom day start not kicking in, wrong timezone when new-day is calculated, drops not random, etc) it's going to be here. This library needs a lot of help, so if you're a left-brainer (all sorts of algorithms in here), jump in here! Also, we could really use some unit tests! Mobile One of the best decisions we made was launching the app on AngularJS + PhoneGap. This has allowed us to literally copy & paste giant portions of code between web & mobile, making maintenance and developer transferring a breeze. That's right, the mobile app uses the exact same front-end stack of the website. While PhoneGap has saved us a lot of effort, the major issues here are (1) us not using all the css tricks we can to optimize performance, (2) mobile-only javascript bugs (like ghost clicks & the sort). If you're mobile-web savvy, please jump into this project wherever you can: * Issues * Features Also, before jumping in read this note on some of the orphan files, habitrpg-shared integration, etc. Website About technology in a bit, but first: * "I wanna start small" - hit the issue queue, take something that looks simple enough (probably the "priority - minor" & "priority - medium" tickets) * "I'm ready to dive in, and I want to help where I'm most needed" - "priority - critical" and "priority - important" on the issue queue - Unit tests & Karma tests! Oh please, oh please, oh please! - We love you and need you. * "Forget that, I want to build things!" - Trello feature queue We originally launched on DerbyJS (which didn't work out, long story short), and we're in mid-transfer to AngularJS - and need your help! If you can cope with a messy codebase, here's the scoop. First, tech stack: * Server * ExpressJS (NodeJS) * MongooseJS (MongoDB) * Client ** AngularJS * Jade * Stylus Check out the develop branch. Follow the "README.md" instructions in there for getting the server running. What we're doing is converting all the old *code* files in "/archive/derby_controllers" to the new Angular controller code in "/public/js", side-by-side with converting old "/views/*.html" to the new "/views/*.jade". As you convert things over, delete the original so we know it's ported. You can tell something hasn't been ported in controller code if it's still using `x-bind=""` instead of `ng-click=""`. !port(https://dl.dropboxusercontent.com/u/3869142/html-file-conversion.png) !coffee->js(https://dl.dropboxusercontent.com/u/3869142/coffeescript-file-conversion.png) A side-note on technology: we're moving from CoffeeScript to JavaScript because CS is a bigger barrier-to-entry for Habit as an open-source project. I personally love CoffeeScript, but it's prevented quite a few developers from joining. As far as Jade goes, we need a server templating language without ` ` binding syntax (aka, Handlebars & Mustache) since they're incompatible with Angular. We could have gone with EJS - let me know if you think Jade will cause a barrier. Let's tackle porting features bit-by-bit, tickets at here(https://github.com/lefnire/habitrpg/issues?milestone=3&state=open). Right now the most of the major features have been ported, but most of the minor bits (drop / streak-bonus notifications, graphs & charts, etc) haven't been ported. The best bet is to take a peak at the those issues to get a feel, then run the app locally and start playing around - then just tackle whatever issues you see and feel comfy tackling. 30m Video Tutorial on jumping in, if you're a video learner: https://www.youtube.com/watch?v=pI0W39E33bI Once the rewrite is complete, we'll move on to these: * Issues(https://github.com/lefnire/habitrpg/issues/) * Features(https://trello.com/b/EpoYEYod/habitrpg) Requesting features/Submitting ideas If you have an idea for improving HabitRPG, you can learn about our feature tracker and how to request a new feature or go straight to our community site and submit new feature ideas for the web app or mobile app. Submit bug reports here. Helping on the Wiki New to wikis? * If you are new to wikis, you may want to read the ' '. * There is some advice on getting this wiki started at ' '. * A list of most help pages can be found on ' ' and in Category:Help. How to help out * If you want to help but you're not sure where to start, try improving the various stub articles by adding content. * Checking out pages with suggested changes is also a good source of ideas. * Another helpful activity would be to check the list of ' ' for frequently linked-to articles that don't exist yet. * To follow the changes to this wiki, and to look out for new users and edits use ' '. * You can find a list of useful templates on Category:Templates, some of which are documented on :Templates. * If you need help editing, you could start with ' ' or ' '. Want to discuss stuff? * If you want to discuss anything specific to an article, you can use ' ' for that article. * For more general discussions you can use ' '. :Please sign in every time you edit, so that we can your contributions. For more info about the project... you can also check out: the Community Pages on the HabitRPG website, open issues on Github, and see enhancements under consideration on the Trello board. Category:Content Category:Contributing